home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / a_utils / perl / perl5a1.lha / perl5alpha1 / do / each < prev    next >
Encoding:
Text File  |  1992-08-15  |  540 b   |  34 lines

  1. int
  2. do_each(TARG,hash,gimme,arglast)
  3. STR *TARG;
  4. HASH *hash;
  5. int gimme;
  6. int *arglast;
  7. {
  8.     STR **st = stack->ary_array;
  9.     register int sp = arglast[0];
  10.     HENT *entry = hiternext(hash);
  11.     int i;
  12.     char *tmps;
  13.  
  14.     if (mystrk) {
  15.     str_free(mystrk);
  16.     mystrk = Nullstr;
  17.     }
  18.  
  19.     if (entry) {
  20.     if (gimme == G_ARRAY) {
  21.         tmps = hiterkey(entry, &i);
  22.         if (!i)
  23.         tmps = "";
  24.         st[++sp] = mystrk = str_make(tmps,i);
  25.     }
  26.     st[++sp] = TARG;
  27.     str_sset(TARG,hiterval(hash,entry));
  28.     STABSET(TARG);
  29.     return sp;
  30.     }
  31.     else
  32.     return sp;
  33. }
  34.